🎖️GitЯра🎖️
Commit 03009c4dedf66e776027e4b3391e137853c84360
Parents : 1303f62
Author : Jason Houk <dubsectordevelopment@gmail.com>
Signature : Signature validation error
Date : 2026-06-27T17:39:58-04:00
Committer : GitHub <noreply@github.com>
Date : 2026-06-27T21:39:58Z
Prevent Range Test from running on public/default channel (#5986)
Changes
1 files changed, 8 insertions(+), 4 deletions(-)
Diff
diff --git a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/RangeTestConfigItemList.kt b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/RangeTestConfigItemList.kt
index 1fcb7287c6..b3aa109442 100644
--- a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/RangeTestConfigItemList.kt
+++ b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/RangeTestConfigItemList.kt
@@ -43,6 +43,9 @@ fun RangeTestConfigScreen(viewModel: RadioConfigViewModel, onBack: () -> Unit) {
val rangeTestConfig = state.moduleConfig.range_test ?: ModuleConfig.RangeTestConfig()
val formState = rememberConfigState(initialValue = rangeTestConfig)
+ val isPublicPrimaryChannel = (state.channelList.firstOrNull()?.psk?.size ?: 0) < 2
+ val canConfigure = state.connected && !isPublicPrimaryChannel
+
RadioConfigScreenList(
title = stringResource(Res.string.range_test),
onBack = onBack,
@@ -51,7 +54,8 @@ fun RangeTestConfigScreen(viewModel: RadioConfigViewModel, onBack: () -> Unit) {
responseState = state.responseState,
onDismissPacketResponse = viewModel::clearPacketResponse,
onSave = {
- val config = ModuleConfig(range_test = it)
+ val safeConfig = if (isPublicPrimaryChannel) it.copy(enabled = false) else it
+ val config = ModuleConfig(range_test = safeConfig)
viewModel.setModuleConfig(config)
},
) {
@@ -60,7 +64,7 @@ fun RangeTestConfigScreen(viewModel: RadioConfigViewModel, onBack: () -> Unit) {
SwitchPreference(
title = stringResource(Res.string.range_test_enabled),
checked = formState.value.enabled,
- enabled = state.connected,
+ enabled = canConfigure || formState.value.enabled,
onCheckedChange = { formState.value = formState.value.copy(enabled = it) },
containerColor = CardDefaults.cardColors().containerColor,
)
@@ -69,7 +73,7 @@ fun RangeTestConfigScreen(viewModel: RadioConfigViewModel, onBack: () -> Unit) {
DropDownPreference(
title = stringResource(Res.string.sender_message_interval_seconds),
selectedItem = (formState.value.sender).toLong(),
- enabled = state.connected,
+ enabled = canConfigure,
items = rangeItems.map { it.value to it.toDisplayString() },
onItemSelected = { formState.value = formState.value.copy(sender = it.toInt()) },
)
@@ -77,7 +81,7 @@ fun RangeTestConfigScreen(viewModel: RadioConfigViewModel, onBack: () -> Unit) {
SwitchPreference(
title = stringResource(Res.string.save_csv_in_storage_esp32_only),
checked = formState.value.save,
- enabled = state.connected,
+ enabled = canConfigure,
onCheckedChange = { formState.value = formState.value.copy(save = it) },
containerColor = CardDefaults.cardColors().containerColor,
)
Served by rngit 1.5.2 - Generated in 0.08s